Many nodes (e.g., computing platforms, smartphones, or network devices) may communicate data via packets, e.g., Internet protocol (IP) packets. Generally, one or more related packets may be referred to as a packet flow. For example, a node may receive media from a web server via a packet flow of one or more related packets. In this example, the packet flow may be identifiable using one or more common attributes associated with each packet of the packet flow. These common attributes may be known as a flow identifying tuple and may include a source address, a destination address, a source port number, a destination port number and/or protocol(s) in use.
When communicating data via sequenced or ordered packets, a protocol, such as a transmission control protocol (TCP) or a stream control transmission protocol (SCTP), may be used to provide reliable, ordered, and/or error-checked data (e.g., a stream of bytes or octets) between applications executing on different nodes. Some network operators, equipment testers, or other entities may want to modify data being communicated via packets. Conventional packet flow modification requires extensive resources and can be time consuming. For example, a packet modification entity may intercept or collect an entire packet flow, terminate the packet flow, (re)assemble data from the packets (e.g., de-packetize the data from the packet flow), perform modifications to the data, repackage the data into new packets (e.g., re-packetize the data into a new packet flow), and send the new packets to a destination. Since conventional packet flow modification requires packet deconstruction or de-packetizing of a packet flow and/or other resource intensive operations prior to modification, conventional packet flow modification cannot be perform at line rate or near line rate.
Accordingly, a need exists for improved methods, systems, and computer readable media for packet flow modification.